javascript:(function () {

/**
 *
 * SETT Browser for Android
 * Sinhala-English-Tamil Trilingual rendering supported 
 * mobile web-browser for Android
 *  
 * Copyright (C) 2010 Dhanika Kaushalya Perera.
 * Contact: dhanikaperera@gmail.com
 * http://sett-browser.googlecode.com
 *  
 * This JavaScript is the latin script rendering engine 
 * of this browser. Currently this rendering engine supports 
 * Sinhala & Tamil complex scripts. Rendering is done by 
 * mapping the complex script text in pages to transliterated 
 * latin script characters.
 * 
 */

var Unicode = new Array();
var SettUni = new Array();
var SinhalaUnicodeStart = 3458;
var SinhalaUnicodeEnd = 3572;
var TamilUnicodeStart = 2947;
var TamilUnicodeEnd = 3058;

/**
 * CHARACTER MAPPING 
 */

Unicode[0]='අ';         		SettUni[0]='a';
Unicode[1]='ආ';				SettUni[1]='ā';
Unicode[2]='ඇ';  		  	SettUni[2]='á';
Unicode[3]='ඈ';         	SettUni[3]='áá';
Unicode[4]='ඉ';        		SettUni[4]='i';	
Unicode[5]='ඊ';      		SettUni[5]='ī';
Unicode[6]='උ';      		SettUni[6]='u';
Unicode[7]='ඌ';      		SettUni[7]='ū';
Unicode[8]='ඍ';      		SettUni[8]='ru';
Unicode[9]='ඎ';      		SettUni[9]='rū';
Unicode[10]='එ';      		SettUni[10]='e';
Unicode[11]='ඒ';      		SettUni[11]='ē';
Unicode[12]='ඓ';     		SettUni[12]='ai';
Unicode[13]='ඔ';      		SettUni[13]='o';
Unicode[14]='ඕ';      		SettUni[14]='ō';
Unicode[15]='ඖ';      		SettUni[15]='au';					
Unicode[16]='ක';     		SettUni[16]='ka';
Unicode[17]='ඛ';      		SettUni[17]='kha';
Unicode[18]='ග';      		SettUni[18]='ga';
Unicode[19]='ඝ';      		SettUni[19]='gha';
Unicode[20]='ඞ';      		SettUni[20]='n';
Unicode[21]='ඟ';      		SettUni[21]='ńga';
Unicode[22]='ච';      		SettUni[22]='cha';
Unicode[23]='ඡ';      		SettUni[23]='cha';
Unicode[24]='ජ';      		SettUni[24]='ja';
Unicode[25]='ඣ';      		SettUni[25]='kdha';
Unicode[26]='ඤ';      		SettUni[26]='kĝńa';
Unicode[27]='ඥ';      		SettUni[27]='ĝńa';
Unicode[28]='ඦ';      		SettUni[28]='ńja';					
Unicode[29]='ට';     		SettUni[29]='ta';
Unicode[30]='ඨ';      		SettUni[30]='ta';
Unicode[31]='ඩ';      		SettUni[31]='da';
Unicode[32]='ඪ';      		SettUni[32]='da';
Unicode[33]='ණ';      		SettUni[33]='na';
Unicode[34]='ඬ';      		SettUni[34]='ńda';
Unicode[35]='ත';      		SettUni[35]='tha';
Unicode[36]='ථ';      		SettUni[36]='tha';
Unicode[37]='ද';      		SettUni[37]='da';
Unicode[38]='ධ';      		SettUni[38]='dha';
Unicode[39]='න';      		SettUni[39]='na';
Unicode[40]='ඳ';      		SettUni[40]='ńda';
Unicode[41]='ප';      		SettUni[41]='pa';
Unicode[42]='ඵ';      		SettUni[42]='pha';				
Unicode[43]='බ';     		SettUni[43]='ba';
Unicode[44]='භ';      		SettUni[44]='bha';
Unicode[45]='ම';      		SettUni[45]='ma';
Unicode[46]='ඹ';      		SettUni[46]='ḿba';
Unicode[47]='ය';      		SettUni[47]='ya';
Unicode[48]='ර';      		SettUni[48]='ra';
Unicode[49]='ල';      		SettUni[49]='la';
Unicode[50]='ව';      		SettUni[50]='wa';
Unicode[51]='ශ';      		SettUni[51]='sha';
Unicode[52]='ෂ';      		SettUni[52]='sha';
Unicode[53]='ස';      		SettUni[53]='sa';
Unicode[54]='හ';      		SettUni[54]='ha';
Unicode[55]='ළ';      		SettUni[55]='la';
Unicode[56]='ෆ';      		SettUni[56]='fa';

Unicode[57]='a්‍රෝ';			SettUni[57]='rō';
Unicode[58]='a්‍රො';  		SettUni[58]='ro';
Unicode[59]='a්‍රේ';    		SettUni[59]='rē';
Unicode[60]='a්‍රෞ'; 			SettUni[60]='rau';
Unicode[61]='a්‍රෙ';   		SettUni[61]='re';
Unicode[62]='a්‍ර';      		SettUni[62]='ra';
Unicode[63]='a්‍යෝ';  		SettUni[63]='yō';
Unicode[64]='a්‍යො';  		SettUni[64]='yo';
Unicode[65]='a්‍යෙ';  		SettUni[65]='ye';
Unicode[66]='a්‍ය';  			SettUni[66]='ya';
Unicode[67]='aෛ'; 		SettUni[67]='ai';
Unicode[68]='aෞ';  		SettUni[68]='au';
Unicode[69]='aෝ'; 			SettUni[69]='ō';
Unicode[70]='aො';   		SettUni[70]='o';
Unicode[71]='aේ';   		SettUni[71]='ē';
Unicode[72]='aෙ';   		SettUni[72]='e';
Unicode[73]='ං';      		SettUni[73]='n';
Unicode[74]='aඃ';      		SettUni[74]='ah';
Unicode[75]='aැ';      		SettUni[75]='á';
Unicode[76]='aෑ';      		SettUni[76]='áá';
Unicode[77]='aි';      		SettUni[77]='i';
Unicode[78]='aී';      		SettUni[78]='ī';
Unicode[79]='aු';      		SettUni[79]='u';
Unicode[80]='aූ';      		SettUni[80]='ū';
Unicode[81]='aෘ';      		SettUni[81]='ru';
Unicode[82]='aෲ';      	SettUni[82]='rū';
Unicode[83]='aෟ';      		SettUni[83]='au';
Unicode[84]='aා';      		SettUni[84]='ā';
Unicode[85]='(.)a්';      	SettUni[85]='$1';

Unicode[86]='அ';      		SettUni[86]='a';
Unicode[87]='ஆ';      		SettUni[87]='ā';
Unicode[88]='இ';      		SettUni[88]='i';
Unicode[89]='ஈ';      		SettUni[89]='ī';
Unicode[90]='உ';      		SettUni[90]='u';
Unicode[91]='ஊ';      		SettUni[91]='ū';
Unicode[92]='அெ';      		SettUni[92]='ĕ';
Unicode[93]='எ';      		SettUni[93]='e';
Unicode[94]='ஏ';      		SettUni[94]='ē';
Unicode[95]='ஐ';      		SettUni[95]='ai';
Unicode[96]='ஒ';      		SettUni[96]='o';
Unicode[97]='ஓ';      		SettUni[97]='ō';
Unicode[98]='ஔ';      		SettUni[98]='au';
Unicode[99]='க';      		SettUni[99]='ka';
Unicode[100]='ங்';      		SettUni[100]='n';
Unicode[101]='ச';      		SettUni[101]='cha';
Unicode[102]='ஜ';      		SettUni[102]='ja';
Unicode[103]='ஞ';      		SettUni[103]='na';
Unicode[104]='த';      		SettUni[104]='tha';
Unicode[105]='ட';      		SettUni[105]='da';
Unicode[106]='ண';      		SettUni[106]='na';
Unicode[107]='று';      		SettUni[107]='tru';
Unicode[108]='ந';      		SettUni[108]='na';
Unicode[109]='ன';      		SettUni[109]='na';
Unicode[110]='ப';      		SettUni[110]='pa';
Unicode[111]='ம';      		SettUni[111]='ma';
Unicode[112]='ய';      		SettUni[112]='ya';
Unicode[113]='ர';      		SettUni[113]='ra';
Unicode[114]='ற';      		SettUni[114]='ra';
Unicode[115]='ல';      		SettUni[115]='la';
Unicode[116]='ள';     		SettUni[116]='la';
Unicode[117]='ழ';      		SettUni[117]='la';
Unicode[118]='வ';      		SettUni[118]='wa';
Unicode[119]='ஶ';      		SettUni[119]='sha';
Unicode[120]='ஷ';      		SettUni[120]='sha';
Unicode[121]='ஸ';      	SettUni[121]='sa';
Unicode[122]='ஹ';      	SettUni[122]='ha';
Unicode[123]='க்ஷ';      	SettUni[123]='kha';
Unicode[124]='ஃப';      		SettUni[125]='fa';

Unicode[125]='aஃ';       	SettUni[125]='ha';
Unicode[126]='aௌ';    	SettUni[126]='au';
Unicode[127]='aோ';   		SettUni[127]='ō';
Unicode[128]='aொ';   		SettUni[128]='o';
Unicode[129]='aெ';      	SettUni[129]='e';
Unicode[130]='aே';      	SettUni[130]='ē';
Unicode[131]='aை';      	SettUni[131]='ai';
Unicode[132]='aா';       	SettUni[132]='ā';
Unicode[133]='aி';       	SettUni[133]='i';
Unicode[134]='aீ';       	SettUni[134]='ī';
Unicode[135]='aு';       	SettUni[135]='u';
Unicode[136]='aூ';       	SettUni[136]='ū';
Unicode[137]='(.)a்';       SettUni[137]='$1';


settrender();

/**
 * CHECK FOR THE PAGE HEAD & BODY 
 */

function settrender(){	
	var dtEnd, dtStart = new Date();
	if(location.href && document.getElementsByTagName("HEAD")[0] && document.getElementsByTagName("BODY")[0]){
		replaceInTextNodes(document.body);												
	}
	dtEnd = new Date();
	var nMSeconds = dtEnd.valueOf() - dtStart.valueOf();
	//alert("Duration: " + nMSeconds);
}


/**
 * CHECK FOR SINHALA & TAMIL UNICODE TEXT IN THE PAGE &  
 * TRANSLITERATE THEM INTO LATIN SCRIPT
 */			
 
function replaceInTextNodes(parent) {
	for (var child=parent.firstChild; child!==null; child= child.nextSibling) {
	
		if (child.nodeType===1) { //ELEMENT_NODE
			var tag= child.tagName.toLowerCase();
			if (tag!=='script' && tag!=='style' && tag!=='textarea' && tag!=='sett' && tag!=='br')
				replaceInTextNodes(child);
		}
		
		else if (child.nodeType===3) { //TEXT_NODE
		    var text = child.data;
		    for (i=0; i<text.length; i++){
		    
		    	//CHECK FOR SINHALA UNICODE TEXT & TRANSLITERATE THEM INTO LATIN SCRIPT
		    
  				if (text.charCodeAt(i)>= SinhalaUnicodeStart && text.charCodeAt(i)<= SinhalaUnicodeEnd){
  					
  					for (i=0;i<86;i++) {
  						var unicode = new RegExp(Unicode[i], "g");
  						text = text.replace(unicode, SettUni[i]);
  					}
					child.data = text;
					break;
				}
				
				//CHECK FOR TAMIL UNICODE TEXT & TRANSLITERATE THEM INTO LATIN SCRIPT
				
				else if (text.charCodeAt(i)>= TamilUnicodeStart && text.charCodeAt(i)<= TamilUnicodeEnd){			
					for (i=86;i<138;i++) {
  						var unicode = new RegExp(Unicode[i], "g");
  						text = text.replace(unicode, SettUni[i]);
  					}
					child.data = text;
					break;
					
				}
			}
		}
	}
}


})();